iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
自我挑戰組

Bug仔的筆記本系列 第 7

C# 讀取 XML 的方式

  • 分享至 

  • xImage
  •  

我一直以為現在是 json 格式的天下,沒想到遇到靜態資料都存在 XML 的專案。趁機會學習一下 XML 的存取方式

.NET 內建存取 XML 的工具,都位於在System.XML的命名空間裡面

其中有 XmlReader XmlDocument 兩種方式。

XmlDocument

XmlDocument是一次讀取整份XML到記憶體的方式,而我們可以使用load方法來讀入XML

XmlDocument doc = new XmlDocument();
doc.Load("C:\Users\dannyliu\Desktop\TEST.xml");

載入文件後,接下來就是要讀取裡面的節點,假設我們的XML資料如下

<?xml version="1.0" encoding="utf-8"?>  
<Items>  
 <Item>  
    <Name>A</Name>  
  </Item>  
  <Item>  
    <Name>B</Name>  
  </Item>  
  <Item>  
    <Name>C</Name>  
  </Item>  
  <Item>  
    <Name>D</Name>  
  </Item>  
  <Item>  
    <Name>E</Name>  
  </Item>  
</Items> 

可以使用SelectSingleNode(條件)方法來找出符合條件的第一個節點
又或可使用SelectNodes(條件)方法來所有符合條件的相同節點
以下是條件舉例

  1. "Items" <- 找當前位置的 Items 節點
  2. "Items/Item" <- 當前位置 Items 裡面的 Item 節點:
  3. "/Items" <- 從根位置找 Items 節點
  4. "/Items/Item/Name" <-從根位置直接取得 Name 節點
XmlDocument doc = new XmlDocument();
doc.Load(C:\Users\dannyliu\Desktop\TEST.xml);

var itemsNode = doc.SelectSingleNode("Items");

var itemNodeList = itemsNode.SelectNodes("Item");

foreach (XmlNode item in itemNodeList)
{
	Console.WriteLine(item["Name"]?.InnerText);
}

結果

A
B
C
D
E

上一篇
ASP.NET 依"組態"切換多國語系檔案
下一篇
C# 基本的圖片壓縮
系列文
Bug仔的筆記本30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言